package com.varian.system.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.varian.mybatis.base.IBaseService;
import com.varian.system.dto.UserDetailDTO;
import com.varian.system.dto.UserLoginDTO;
import com.varian.system.dto.*;
import com.varian.system.entity.SysUser;
import com.varian.system.vo.SysUserGrantVO;
import com.varian.system.vo.SysUserProfileVO;
import com.varian.system.vo.SysUserVO;

import java.util.List;

/**
 * @author ben
 * @since 2024/7/1
 */
public interface ISysUserService extends IBaseService<SysUser> {

    boolean add(SysUserDTO dto);

    boolean modify(Long id, SysUserDTO dto);

    SysUserVO detail(Long id);

    Page<SysUserVO> page(SysUserPageDTO dto);

    SysUserGrantVO grantedList(Long id);

    boolean grant(Long id, SysUserGrantDTO dto);

    UserDetailDTO getUserByUsername(String username);

    SysUserProfileVO userProfile();

    boolean updateUserLoginInfo(UserLoginDTO userLoginDTO);

    boolean modifyUserProfile(SysUserProfileDTO dto);

    boolean resetPassword(SysUserRestPasswordDTO dto);

    List<SysUserVO> list(SysUserListDTO dto);
}
